var languageCommon= {
	"zeroRecords" : "对不起，查询不到任何相关数据",
	"info" : "  _START_ 到 _END_ 条,共_TOTAL_条",
	"infoEmpty" : "记录数为0",
	"infoFiltered": "(从 _MAX_ 条记录过滤)",
	"loadingRecords": "请稍等，正在加载...",
	"lengthMenu": "每页显示 _MENU_ 条记录",
	"processing": "正在加载...",
	"search" : "搜索",
	"paginate": {
         "first": "<<",
         "last": ">>",
         "next": ">",
         "previous": "<"
    }
};
var buttonsCommon=[{ extend: 'collection',
    text: '<i class="icon-list-ul" style="font-size: 12;color: #15bb6b;"></i>',
    buttons: [{ extend: 'csv',charset:'utf-8',bom:true },{ extend: 'excel',charset:'utf-8',bom:true },'copy']
    }
    
];

var pageing = true;//是否分页
var exportEnable=true;//是否可导出
var domCommon='<"top"Bfl>rt<"bottom"ip><"clear">';

/**
 * _columns 自定义列
 *_data 数据源
 * paramsDataTables dataTables参数
 */
jQuery.fn.dataTableSpec=function(_columns, _data,paramsDataTables){
	addTableHeadClass();//添加表头对齐class
	var datatable = $(this);
	var columnDefsCommon= [{'defaultContent': '','targets': '_all'}];
	if(paramsDataTables==undefined){
		paramsDataTables={};
	}
	var searching = paramsDataTables.searching==false?false:true;//是否启用过滤，默认true
	var paging=paramsDataTables.paging==false?false:true;//是否启用分页,默认设置为true,最终是否分页由此参数与系统配置中的设置一起决定
	var ordering = paramsDataTables.ordering==false?false:true;//是否启用排序
	var lengthChange=paramsDataTables.lengthChange==false?false:true;//是否允许调整每页的条数
	var lengthMenu=paramsDataTables.lengthMenu==undefined?[ [10, 25, 50, -1], [10, 25, 50, "All"] ]:paramsDataTables.lengthMenu;//
	var pageLength=paramsDataTables.pageLength==undefined?10:paramsDataTables.pageLength;//默认的分页条数
	var info=paramsDataTables.info==false?false:true;//是否显示页脚信息
	var scrollX=paramsDataTables.scrollX==true?true:false;//是否启用水平滚动 默认为false
	var scrollY=paramsDataTables.scrollY==undefined?false:paramsDataTables.scrollY;//设置纵向滚动（如：250px）
	var autoWidth=paramsDataTables.autoWidth==false?false:true;//是否自动计算列宽，默认为true
	var order=paramsDataTables.order==undefined?false:paramsDataTables.order;//设置排序的数组，如果不设置就传入false,初始化排序
	var dom=paramsDataTables.dom==undefined?domCommon:paramsDataTables.dom;//自定义dom元素
	var fixedColumns=paramsDataTables.fixedColumns==undefined?{}:paramsDataTables.fixedColumns;//锁定列
	if(paramsDataTables.columnDefs!=undefined){//定义columnDefs
		if(paramsDataTables.columnDefs instanceof Array){//判断是否为数组
			for(var o in paramsDataTables.columnDefs){
				columnDefsCommon.push(paramsDataTables.columnDefs[o]);
			}
		}
	}
	var buttonsCustom = jQuery.extend(true, [],buttonsCommon);//此处复制时，用[],不用{}
    if(paramsDataTables.buttons!=undefined){//定义columnDefs
    	for(var o in paramsDataTables.buttons){
    		buttonsCustom.push(paramsDataTables.buttons[o]);
		}
	}
	var jQueryUI=paramsDataTables.jQueryUI==true?true:false;//是否启用jQueryUI 默认为false
	var stateSave=paramsDataTables.stateSave==true?true:false;//是否保存table状态，默认为false 当开启了状态储存，Datatables会存储一个状态到浏览器上， 包含分页位置，每页显示的长度，过滤后的结果和排序，重新刷新页面，表格的状态将会被设置为之前的设置
	var retrieve=paramsDataTables.retrieve==true?true:false;//默认为false 检索已存在的Datatables实例，即如果已经初始化了，则继续使用之前的Datatables实例
	var orderCellsTop=paramsDataTables.orderCellsTop==true?true:false;//默认为false 控制表头(colspan rowspan 表头)的哪一个单元格可以应用于该列的排序响应
	var rownumbers=paramsDataTables.rownumbers==true?true:false;//默认为false
	
	//如果有导出权限，设置标题
	if(exportEnable){
		if(datatable.parents().hasClass('dataChangeSel')){
			var $currdt = datatable.parents(".dataChangeSel");
			buttonsCustom[0].buttons[0].filename=$currdt.find(".contaotalsccq").text();
			buttonsCustom[0].buttons[1].filename=$currdt.find(".contaotalsccq").text();
		}
		else if(paramsDataTables.tableTitle!=undefined){
			buttonsCustom[0].buttons[0].filename=paramsDataTables.tableTitle;
			buttonsCustom[0].buttons[1].filename=paramsDataTables.tableTitle;
		}
		else{
			buttonsCustom[0].buttons[0].filename='*';
			buttonsCustom[0].buttons[1].filename='*';
		}
	}
	
	var option = {
		 "destroy": true,//允许重新实例化Datatables
		 "paging":pageing&&paging,//是否分页
		 "searching":searching,//过滤功能
		 "ordering":ordering,//是否启用字段排序
    	 "lengthChange": lengthChange,//是否改变每页显示条数
    	 "pageLength":pageLength,
    	 "info":info,//页脚信息
	     "scrollX":scrollX,
	     "scrollY":scrollY,
	     "buttons": buttonsCustom,
	     "autoWidth":autoWidth,//是否自动计算单元格宽度
    	 "stateSave": false,
    	 "columnDefs":columnDefsCommon,
    	 "jQueryUI":jQueryUI,
    	 "stateSave":stateSave,
    	 "retrieve":retrieve,
    	 "orderCellsTop":orderCellsTop,
    	 "rownumbers":rownumbers,
    	 "dom": dom,//l - Length changing 改变每页显示多少条数据的控件,f - Filtering input 即时搜索框控件,t - The Table 表格本身,i - Information 表格相关信息控件, p - Pagination 分页控件 ,r - pRocessing 加载等待显示信息
         "data":_data,//数据源
    	 "pagingType": "full_numbers",
    	 "lengthMenu": lengthMenu,
    	 "columns":_columns,
    	 "initComplete": function(settings, json) {		
 	    	removeTableHeadClass();//移除表头对齐class
     	   },//绘制完后
 	    "language":languageCommon,
 		"fixedColumns" :fixedColumns 
 	   }
	if(paramsDataTables.dom!=undefined){
		option.dom=paramsDataTables.dom;
	}
	if(order!=false){
		option.order=order;
	}
	if(paramsDataTables.drawCallback!=undefined){
		option.drawCallback=paramsDataTables.drawCallback;
	}
	if(paramsDataTables.initComplete!=undefined){
		var initComplete=paramsDataTables.initComplete;
		var initCompleteFinal=function(){
			initComplete();
			removeTableHeadClass();//移除表头对齐class
		};
		option.initComplete=initCompleteFinal;
	}
	if(paramsDataTables.createdRow!=undefined){
		option.createdRow=paramsDataTables.createdRow;
	}
	if(paramsDataTables.fixedColumns!=undefined){
		option.fixedColumns=paramsDataTables.fixedColumns;
		option.scrollCollapse=true;
	}
	else{
		option.fixedColumns=false;
	}
	var table;
	try {
		table = $(this).DataTable(option);
	} catch (e) {
		// console.error(e);
		removeTableHeadClass();//移除表头对齐class
	}
    return table;
};

/**
 * 
 * @ Discription:添加tab页的表头对其class
 * @Autor ：chenhanlin
 * @param table
 * @returns
 * drgsDataTables.js
 * 2018年01月15日上午11:18:02
 */
function addTableHeadClass() {
	$(".tab-pane").addClass('dataTableHead');
	$("#carousel-inner .item").addClass('dataTableHead');//轮播时 datatable表头问题
	$("#caseDistriIntervelNav").addClass('open'); // 专科建设选择条件样式
}
/**
 * 
 * @ Discription:移除tab的表头对齐class样式
 * @Autor ：chenhanlin
 * @param table
 * @returns
 * drgsDataTables.js
 * 2018年01月15日上午11:18:02
 */
function removeTableHeadClass() {
	$(".tab-pane").removeClass('dataTableHead');
	$("#carousel-inner .item").removeClass('dataTableHead');//轮播时 datatable表头问题
	$("#caseDistriIntervelNav").removeClass('open'); // 专科建设选择条件样式
}
